package com.crm.system.service.orderManager;

import com.alibaba.fastjson.JSONObject;
import com.crm.common.model.DhPageInfo;
import com.crm.model.qo.orderManager.ExportOrderProductQO;
import com.crm.model.qo.sys.ImportFailureLogQO;
import com.crm.model.vo.orderManager.CustomerProductOrderImportVO;
import com.crm.model.vo.orderManager.OrderProductPriceVO;
import com.crm.model.vo.sys.ImportFailureLogVO;

import java.util.List;

/**
 * @ Author ：pym
 * @ Date   ：2021/6/1 9:53
 */
public interface CustomerProductOrderImportService {

    /**
     * 订单导入
     * @Author pym
     * @Date  2021/6/1 17:00
     * @param list 订单集合
     * @return {@link {com.alibaba.fastjson.JSONObject}}
     */
    JSONObject importCustomerProductOrder(List<CustomerProductOrderImportVO> list);

    /**
     * 导入失败数据列表
     * @Author pym
     * @Date  2021/6/8 15:04
     * @param pageIndex -页码
     * @param pageSize -分页大小
     * @param importFailureLogQO -查询条件
     * @param sortName -排序列名字
     * @param sortOrder -排序规则(asc/desc)
     * @return {@link {com.crm.common.model.DhPageInfo<com.crm.model.vo.sys.ImportFailureLogVO>}}
     */
    DhPageInfo<ImportFailureLogVO> selectOrderImportFailedDataList(Integer pageIndex, Integer pageSize,
                                                              ImportFailureLogQO importFailureLogQO,
                                                              String sortName, String sortOrder);

    /**
     * 获取产品名称表头
     * @Author pym
     * @Date  2021/8/13 10:35
     * @param type 类型 memberNew：会员新建订单；membershipRenewal：会员续费订单；course：课程订单；refund：退款
     * @param exportOrderProductQO 筛选条件
     * @param companyId 公司id
     * @return {@link {java.util.List<java.lang.String>}}
     */
    List<String> getProductNameList(String type, ExportOrderProductQO exportOrderProductQO, String companyId);

    /**
     * 获取产品名称和价格
     * @Author pym
     * @Date  2021/8/13 10:36
     * @param type 类型 memberNew：会员新建订单；membershipRenewal：会员续费订单；course：课程订单；refund：退款
     * @param exportOrderProductQO 筛选条件
     * @param companyId 公司id
     * @return {@link {java.util.List<com.crm.model.vo.orderManager.OrderProductPriceVO>}}
     */
    List<OrderProductPriceVO> getProductNameAndPriceList(String type, ExportOrderProductQO exportOrderProductQO, String companyId);

}
